package com.syh.jn.scm.domain.operation.entity.financial;

import cn.redscarf.commons.util.bean.ExtBeanUtils;
import cn.redscarf.commons.util.other.ExtAssert;
import cn.redscarf.commons.util.validator.ValidationUtils;
import com.syh.core.ddd.domain.AbstractSimpleEntityObject;
import com.syh.jn.scm.dto.operation.financial.FinancialAddressMto;
import com.syh.jn.scm.dto.operation.financial.FinancialAddressSto;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 运营金融地址实体项
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class FinancialAddress extends AbstractSimpleEntityObject<Long> {
  /**
   * 对应经营主体id
   */
  private Long businessEntityId;
  /**
   * 地址省 市 区
   */
  private String area;
  /**
   * 地区编号
   */
  private String areaCode;
  /**
   * 地址
   */
  private String address;
  /**
   * 联系人
   */
  private String contacts;
  /**
   * 联系手机
   */
  private String mobile;

  public FinancialAddress() {
  }

  //添加地址
  public FinancialAddress(FinancialAddressSto sto) {
    ExtAssert.notNull(sto, "对象为空");
    ValidationUtils.validate(sto);
    ExtBeanUtils.copyProperties(sto, this);
    this.initDefault();
  }

  //修改地址
  public FinancialAddress(FinancialAddressMto mto) {
    ExtAssert.notNull(mto, "对象为空");
    ValidationUtils.validate(mto);
    ExtBeanUtils.copyProperties(mto, this);
    this.initDefault();
  }
}
